我希望a
四舍五入到13.95.
>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
Run Code Online (Sandbox Code Playgroud)
该round
功能不像我预期的那样工作.
我一直看到人们在C#中使用双打.我知道我读到某个地方,双打有时会失去精确度.我的问题是什么时候应该使用双倍,何时应该使用小数类型?哪种类型适合货币计算?(即超过1亿美元)
我已经读过双精度和单精度之间的区别.然而,在大多数情况下,float
和double
,似乎可以用一个可以互换的,即或其他的似乎不影响使用效果.这是真的吗?浮动和双打什么时候可以互换?它们之间有什么区别?
所以我已经得到了我最后一个问题的答案(我不知道为什么我没有想到这一点).当我没想到它的时候,我正在打印一个圆润的double
使用cout
.如何使用全精度cout
打印double
?
我想显示一个2位小数的数字.
我以为我可以toPrecision(2)
在JavaScript中使用.
但是,如果数字是0.05
,我得到0.0500
.我宁愿保持不变.
在JSbin上看到它.
做这个的最好方式是什么?
我可以考虑编写一些解决方案,但我想(我希望)内置这样的东西?
我在数据库中指定了以下列:decimal(5,2)
怎么解释这个?
根据SQL Server Management Studio中查看的列上的属性,我可以看到它表示:十进制(数字精度,数字刻度).
精确度和规模在实际意义上是什么意思?
很容易将其解释为带有5位数和2位小数位的十进制数...即12345.12
PS我已经能够从同事那里确定正确的答案,但很难在网上找到答案.因此,我想在stackoverflow上记录问题和答案,以备将来参考.
如何以毫秒精度精确构造实际时间的时间戳?
我需要像16.4.2013 9:48:00:123这样的东西.这可能吗?我有一个应用程序,我每秒采样值10次,我需要在图表中显示它们.
我想得到的总和1 + 2 + ... + 1000000000
,但我在PHP和Node.js得到了有趣的结果.
PHP
$sum = 0;
for($i = 0; $i <= 1000000000 ; $i++) {
$sum += $i;
}
printf("%s", number_format($sum, 0, "", "")); // 500000000067108992
Run Code Online (Sandbox Code Playgroud)
Node.js的
var sum = 0;
for (i = 0; i <= 1000000000; i++) {
sum += i ;
}
console.log(sum); // 500000000067109000
Run Code Online (Sandbox Code Playgroud)
可以使用计算正确的答案
1 + 2 + ... + n = n(n+1)/2
Run Code Online (Sandbox Code Playgroud)
正确答案= 500000000500000000,所以我决定尝试另一种语言.
走
var sum , i int64
for i = 0 …
Run Code Online (Sandbox Code Playgroud) 最近我不得不将双序列化为文本,然后将其取回.该值似乎不相等:
double d1 = 0.84551240822557006;
string s = d1.ToString("R");
double d2 = double.Parse(s);
bool s1 = d1 == d2;
// -> s1 is False
Run Code Online (Sandbox Code Playgroud)
但根据MSDN:标准数字格式字符串,"R"选项应该保证往返安全.
往返("R")格式说明符用于确保转换为字符串的数值将被解析回相同的数值
为什么会这样?
为什么有些数字在存储为浮点数时会失去准确性?
例如,十进制数9.2
可以精确地表示为两个十进制整数(92/10
)的比率,两者都可以用二进制(0b1011100/0b1010
)精确表示.但是,存储为浮点数的相同比率永远不会完全等于9.2
:
32-bit "single precision" float: 9.19999980926513671875
64-bit "double precision" float: 9.199999999999999289457264239899814128875732421875
Run Code Online (Sandbox Code Playgroud)
这样一个看似简单的数字如何在64位内存中表达"太大" ?