我有这样的输出:
1569.3669
15968.3699
41.3878
587.5401
Run Code Online (Sandbox Code Playgroud)
但我希望输出像这样:
01569.3669
15968.3699
00041.3878
00587.5401
Run Code Online (Sandbox Code Playgroud)
我怎么能用C语言做到这一点?
我有一个简单的字符串,我想在不丢失任何可见信息的情况下读入浮点数,如下图所示:
s = ' 1.0000\n'
Run Code Online (Sandbox Code Playgroud)
当我这样做时f = float(s),我明白了f=1.0
如何欺骗这个f=1.0000?
谢谢
这是一小段代码,当被称为输出'double'时.为什么?这背后的原因是什么?为什么不打印'浮动'?
class source
{
static void Main()
{
Receiver r = new Receiver();
r.Method1(1.1);
}
}
class Receiver
{
public virtual void Method1(double f) { Debug.Print("double"); }
public virtual void Method1(float f) { Debug.Print("float"); }
}
Run Code Online (Sandbox Code Playgroud)
TIA
如何在CSS中将define float定义为中心?实际上我需要一个左右之间的布局,我也尝试"文本对齐",但它不起作用,"浮动"属性只是工作.
谢谢
在计算高尔夫差点差值时,您应该将答案截断为1位小数而不进行舍入.不知道为什么但......
我知道如何在mySQL中使用TRUNCATE()来做到这一点
SELECT TRUNCATE( 2.365, 1 );
// outputs 2.3
Run Code Online (Sandbox Code Playgroud)
但我想知道sprintf()是否能做到这一点?我知道在浮点数中使用小数位的唯一方法是......
echo sprintf("%.1f", 2.365);
// outputs 2.4
Run Code Online (Sandbox Code Playgroud) 我在一些"humanize_bytes()"代码中遇到了一个有趣的问题.此循环表示没有所有其他逻辑的问题.当字节被截断为"人类可读"级别时,循环需要停止.它继续迭代,直到最终值小于1024(或可指定的字节大小).
当函数输出"1024.0 P"为1024 PB时,我开始研究这个问题.起初我以为我不小心使用了<= vs <,但经过进一步的检查,我发现更有趣的事情正在发生.
此代码重现了该问题.我正在使用perl 5.8.8.
use strict;
my $bytesize = 1024;
my $final = 1152921504606846720;
while (1) {
printf "bytesize %%d: %d %%f: %s %s final %%d: %19d %%f: %26f\n",
$bytesize,$bytesize,
(
$bytesize == $final ? '==' :
$bytesize > $final ? '>' :
$bytesize < $final ? '<' :
'<error>'
),
$final,$final;
last if $final < $bytesize;
$final /= $bytesize;
}
printf "final = bytesize d:%d f:%s %s final d:%d f:%f\n",
$bytesize,$bytesize,
(
$bytesize == $final …Run Code Online (Sandbox Code Playgroud) 我需要一个c#中的方法,它使我看起来像一个双/浮点数的日期时间.
例如
1.5 - > 01:30 2.8 - > 02:48 25.5 - > 25:30(注意:不要显示为日,显示整个小时甚至超过24)
我知道这是错的,gcc会给你一个关于它的警告,但为什么它会起作用(即数字打印正确,有一些舍入差异)?
int main() {
float *f = (float*) malloc(sizeof(float));
*f = 123.456;
printf("%f\n", *f);
printf("%f\n", f);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编辑: 是的,我正在使用带有32位机器的gcc.我很想知道其他编译器会得到什么结果.
在Christoph的建议之后,我更多地干涉了一些事情:
int main() {
float *f = (float*) malloc(sizeof(float));
*f = 123.456;
printf("%f\n", f); // this
printf("%f\n", *f);
printf("%f\n", f); // that
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这导致第一次printf打印的值与最后的printf不同,尽管是相同的.
我正在开发一个代码,我必须在文本文件中一次加载存储在每一行中的浮点值...我使用fscanf()将每个数据加载到一个浮点数组中...但是我发现浮点数以不同的方式存储,例如407.18存储为407.179993,414.35存储为414.350006 ...现在我被卡住了,因为数据以它们在文件中的形式存储是绝对重要但这里似乎是虽然基本上是相同的......但我如何获得以原始形式存储的数字?
我有一个包含浮动列的表.
该表中有许多记录.
当我执行Group By时,它显示浮点列只有值:0.1 0.2 0.25 0.5 1 2 3
但是当我做SUM时,它会导致:58.350000000000087
0000000000087来自哪里?是因为我使用的是float类型而不是decimal/numeric?我读了一些关于这个的论坛帖子,但数学很痛苦.获得准确结果的正确方法是什么?