曾经有过这个小功能
string format_dollars_for_screen(float d)
{
char ch[50];
sprintf(ch,"%1.2f",d);
return ch;
}
喜欢退货的人-0.00
。
我把它修改为
string format_dollars_for_screen(float d)
{
char ch[50];
float value;
sprintf(ch,"%1.2f",d);
value = stof(ch);
if(value==0.0f) sprintf(ch,"0.00");
return ch;
}
它开始根据需要返回0.00
。我的问题是,为什么这个其他解决方案不起作用?
string format_dollars_for_screen(float d)
{
char ch[50];
float value;
sprintf(ch,"%1.2f",d);
value = stof(ch);
if(value==0.0f) sprintf(ch,"%1.2f", value);
return ch;
}
和/或有没有更有效的方法来做到这一点?这只是我的想法,所以欢迎批评。=)
浮点数既有加零又有减零。它们与==
运算符相比是相等的,但在其他算术表达式中会产生不同的结果:1/0==inf
。
就你的情况而言,你不应该使用浮点数来表示货币数量。相反,使用整数来计算美分(或美分的其他小数部分),并相应地格式化它们:
string format_dollars_for_screen(int cents)
{
bool neg = cents < 0;
if(neg) cents = -cents;
char ch[50];
sprintf(ch, "%s%d.%.2d", "-"+!neg, cents/100, cents%100);
return ch;
}
我正在玩我的eclipse格式化程序。 我目前被卡住,无法格式化空的新行。 我知道我可以使用CTRL+SHIFT+F。 但是我希望它在文件保存时自动发生。 下面是另一个例子 此外,我想选择是否应该在ex one结构声明后或在花括号后自动缩进为无空行。
主要内容:C++ cout成员方法格式化输出,使用流操纵算子格式化输出在某些实际场景中,我们经常需要按照一定的格式输出数据,比如输出浮点数时保留 2 位小数,再比如以十六进制的形式输出整数,等等。 对于学过 C 语言的读者应该知道,当使用 printf() 函数输出数据时,可以通过设定一些合理的格式控制符,来达到以指定格式输出数据的目的。例如 %.2f 表示输出浮点数时保留 2 位小数,%#X 表示以十六进制、带 0X 前缀的方式输出整数。 关于 printf()
如何在C中格式化一个浮点数以输出到四舍五入的两位小数?我在< code>setw和< code>setprecision上运气不好,因为我的编译器告诉我它们< code >未定义。
本文向大家介绍C#留言时间格式化,包括了C#留言时间格式化的使用技巧和注意事项,需要的朋友参考一下 平台:Vs2012 主要实现例如空间发表说说时间的显示,如:某人在10秒前回复了你这种效果,可用在Web浏览器,窗体,等... 计算两个时间差值的函数,返回时间差的绝对值: 以上所述就是本文的全部内容了,希望大家能够喜欢。
我在C#中有一个传递公钥字符串的方法。 我传递的公钥字符串是 我得到一个错误组织。BouncyCastle。安全InvalidKeyException:“不是RSA密钥”。我传递给该方法的公钥格式是否不正确?
本文向大家介绍Objective-C语言NSLog输出格式,包括了Objective-C语言NSLog输出格式的使用技巧和注意事项,需要的朋友参考一下 示例 NSLog在Console.app中查看时,通过调用打印的消息具有以下格式: 日期 时间 程序名称 进程ID 线程ID 信息 2016-07-16 08:58:04.681 test [46259 : 1244773] NSLog messa