我需要从小数或双精度得到左侧整数值.对于Ex:我需要从4.6获得值4.我尝试使用Math.Floor函数,但它返回一个double值,例如:它从4.6返回4.0.MSDN文档说它返回一个整数值.我在这里错过了什么吗?或者有不同的方式来实现我正在寻找的东西?
差异存在于返回值中,我相信这些输入可以打破平局,比如这段代码:
int main()
{
std::cout.precision(100);
double input = std::nextafter(0.05, 0.0) / 0.1;
double x1 = floor(0.5 + input);
double x2 = round(input);
std::cout << x1 << std::endl;
std::cout << x2 << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
哪个输出:
1
0
Run Code Online (Sandbox Code Playgroud)
但它们最终只是不同的结果,人们选择其首选的结果.我看到很多"旧的"C/C++程序floor(0.5 + input)
而不是使用round(input)
.
有历史原因吗?最便宜的CPU?
我需要在PHP中将时间缩短到最接近的四分之一小时.时间从日期时间列中的MySQL数据库中提取并格式化为2010-03-18 10:50:00
.
例:
我假设floor()
参与但不确定如何去做.
谢谢
我在Python中找到了两种获取底线的方法:
3.1415 // 1
Run Code Online (Sandbox Code Playgroud)
和
import math
math.floor(3.1415)
Run Code Online (Sandbox Code Playgroud)
第一种方法的问题是它返回一个浮点(即3.0
).第二种方法感觉笨拙而且太长.
是否有替代解决方案用于在Python中获取地板?
我想要一个floor
带语法的函数
int floor(double x);
Run Code Online (Sandbox Code Playgroud)
但是std::floor
返回一个double
.是
static_cast <int> (std::floor(x));
Run Code Online (Sandbox Code Playgroud)
保证给我正确的整数,还是我有一个一个一个的问题?它似乎有效,但我想肯定地知道.
对于奖励积分,为什么heck确实在第一时间std::floor
返回double
?
我有一个熊猫系列series
.如果我想获得元素层或者天花板,是否有内置方法或者我必须编写函数并使用apply?我问,因为数据很大,所以我很欣赏效率.关于熊猫一揽子计划,还没有提出这个问题.
我正在从我想要创建新DateTime的文件中提取时间戳,但我想在一小时的楼层创建DateTime(或者任何Joda Period会这样做).
我怎样才能做到这一点?
我想定义一个有效的整数下限函数,即从float或double转换为向负无穷大执行截断。
我们可以假设这些值使得没有整数溢出发生。到目前为止,我有一些选择
转换为int 这需要对负值进行特殊处理,因为转换会截断为零。
I= int(F); if (I < 0 && I != F) I--;
Run Code Online (Sandbox Code Playgroud)将floor的结果转换为int;
int(floor(F));
Run Code Online (Sandbox Code Playgroud)强制转换为int以获得较大的正数(对于较大的值,这可能会返回错误的结果);
int(F + double(0x7fffffff)) - 0x7fffffff;
Run Code Online (Sandbox Code Playgroud)众所周知,将数据类型转换为int很慢。如果测试也是如此。我尚未设置发言权功能的时间,但是看到帖子声称它也很慢。
您能在速度,准确性或允许范围方面考虑更好的替代方法吗?它不需要是便携式的。目标是最新的x86 / x64体系结构。
所以,我需要创建以下函数,但是如果没有复杂的数学运算,我的脑袋就不会想到PHP的任何可能性.
我现在已经在Google上搜索了2个小时,唯一出现的就是Excel论坛.是否可以使用一些简单的PHP行?
我是新来的Ruby和我试图找出如何ceil
和floor
工程,我得到不同的答案时,分数或十进制数,使用(类似于值).以下是我的尝试:
puts 8/3.ceil == 2 #=> true
puts 8/3.floor == 2 #=> true
puts 2.67.ceil == 2 #=> false
puts 2.67.floor == 2 #=> true
Run Code Online (Sandbox Code Playgroud)
根据我的理解,ceil
应该返回一个更高的数字,并且floor
数字更低.希望有人能就此启发我.谢谢!:)