我想将Long Float格式设置为C货币。我想在开头放置一个美元符号,用逗号对小数点前的第三个数字进行迭代,并在小数点前进行一个点运算。 到目前为止,我一直在打印如下数字:

printf("You are owed $%.2Lf!

", money);

返回像

You are owed $123456789.00!

数字应如下所示

$123,456,789.00

$1,234.56

$123.45

任何答案都不必在实际代码中。 您不必喂汤。 如果有与C相关的细节会有所帮助,请提及。 其他伪代码也可以。

谢谢。

见stackoverflow.com/questions/1449805/

也谢谢你 这很有帮助。

我知道这在您的问题范围之外,但是您可能找不到通用的方法,因为将货币值存储为浮点型通常不是一个好主意。

因为可能的精度误差?

+1 @airza。 beProactive-是的,分数在以2为基数/以10为基数的转换中不能很好地发挥作用。 只将美分值存储为整数会好很多。

您的printf可能已经可以通过'标志本身来做到这一点。不过,您可能需要设置区域设置。这是我机器上的一个例子:

#include

#include

int main(void)

{

setlocale(LC_NUMERIC,"");

printf("$%'.2Lf

", 123456789.00L);

printf("$%'.2Lf

", 1234.56L);

printf("$%'.2Lf

", 123.45L);

return 0;

}

并运行它:

> make example

clang -Wall -Wextra -Werror    example.c   -o example

> ./example

$123,456,789.00

$1,234.56

$123.45

该程序可以在Mac(10.6.8)和我刚刚尝试过的Linux机器(Ubuntu 10.10)上以所需的方式工作。

这会在我的Ubuntu盒子上签出。 谢谢梅恩。

POSIX要求这样做-printf()

我知道这是一条古老的文章,但是今天我消失在man兔子洞的下面,所以我想记录下我的旅行记录:

您可以在monetary.h中包含一个名为strfmon()的函数,该函数可以根据本地或国际标准来执行此操作。

请注意,它的工作方式与printf()类似,并且将采用与字符串中指定的%格式一样多的double自变量。

除了我在这里拥有的功能之外,还有很多其他功能,我发现此页面最有帮助:https://www.gnu.org/software/libc/manual/html_node/Formatting-Numbers.html

#include

#include

#include

#include

int main(){

// need to setlocal(),"" sets locale to the system locale

setlocale(LC_ALL,"");

double money_amt = 1234.5678;

int buf_len = 16;

char simple_local[buf_len];

char international[buf_len];

char parenthesis_for_neg[buf_len];

char specified_width[buf_len];

char fill_6_stars[buf_len];

char fill_9_stars[buf_len];

char suppress_thousands[buf_len];

strfmon(simple_local, buf_len-1,"%n", money_amt);

strfmon(international, buf_len-1,"%i", money_amt);

strfmon(parenthesis_for_neg, buf_len-1,"%(n", money_amt);

strfmon(specified_width, buf_len-1,"%#6n", money_amt);

strfmon(fill_6_stars, buf_len-1,"%=*#6n", money_amt);

strfmon(fill_9_stars, buf_len-1,"%=*#8n", money_amt);

strfmon(suppress_thousands, buf_len-1,"%^=*#8n", money_amt);

printf("===================== Output ===================

"\

"Simple, local:                  %s

"\

"International:                  %s

"\

"parenthesis for negatives:      %s

"\

"fixed width (6 digits):         %s

"\

"fill character '*':             %s

"\

"-- note fill characters don't

"\

"-- count where the thousdands

"\

"-- separator would go:

"\

"filling with 9 characters:      %s

"\

"Suppress thousands separators:  %s

"\

"================================================

",

simple_local, international, parenthesis_for_neg,

specified_width, fill_6_stars, fill_9_stars,

suppress_thousands);

/** free(money_string); */

return 0;

}

===================== Output ===================

Simple, local:                  $1,234.57

International:                  USD1,234.57

parenthesis for negatives:      $1,234.57

fixed width (6 digits):          $  1,234.57

fill character '*':              $**1,234.57

-- note fill characters don't

-- count where the thousdands

-- separator would go:

filling with 9 characters:       $*****1,234.57

Suppress thousands separators:   $****1234.57

================================================

它也是POSIX功能— strfmon()

我认为没有C函数可以执行此操作,但是您可以自己编写?说float price = 23234.45。首先用逗号打印(int)price,打印小数点;然后对于小数部分,执行printf("%d", (int)(price*100)%100);

标志呢?

c语言编辑货币,关于格式化:如何在C语言中用逗号格式化货币?相关推荐

  1. c语言如何输入数字,请问如何在C语言中输入数字获得拼音?

    请问如何在C语言中输入数字获得拼音? 答案:1  信息版本:手机版 解决时间 2018-12-10 16:41 已解决 2018-12-10 08:20 请问如何在C语言中输入数字获得拼音? 最佳答案 ...

  2. c语言编程输出字母倒三角形,如何在C语言中打印倒三角形

    如何在C语言中打印倒三角形 发布时间:2020-07-28 11:53:15 来源:亿速云 阅读:281 作者:Leah 这期内容当中小编将会给大家带来有关如何在C语言中打印倒三角形,文章内容丰富且以 ...

  3. c语言解析sql语句_如何在C语言里面执行SQL语句?

    一.为什么要在C语言程序中执行SQL语句? 在C语言程序中执行SQL语句的原因有以下几个: (1)程序需要获取数据库中某数据表的字段值,并对这些字段值进行解析以执行后续操作. (2)程序需要更新数据库 ...

  4. 如何用C语言编辑窗口界面,「分享」C语言如何编写图形界面

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 贴吧内经常有人问C语言是不是只能用于字符终端界面开发,不能用于图形界面.大家也都有回答,需要其他的库.MFC,GTK,QT. 本人近期刚用GTK库加上纯C ...

  5. c语言编辑学生信息录入的程序,c语言编的学生信息管理系统小程序!!有不足的请指出,谢谢!!...

    c语言编的学生信息管理系统小程序!!有不足的请指出,谢谢!! #include #include #include struct st { char name[20]; int english; in ...

  6. C语言编辑个人信息,十万火急:用c语言打印个人信息,怎么着?

    十万火急:用c语言打印个人信息,怎么着? 來源:互聯網  2010-06-29 03:19:37  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: 老 ...

  7. c语言参数不能用 吗,如何在C语言中禁止“未使用的参数”警告?

    您可以使用gcc / clang的未使用属性,但是我在标头中使用这些宏,以避免在整个源代码中__attribute__都有gcc特定的属性,而且到处都有点冗长/难看. #ifdef __GNUC__ ...

  8. 分数在c语言程序中怎么输入,如何在c语言中实现分数相加,以分数形式输出,并化为最简...

    完整的C程序: #include "stdio.h" /* 分数结构 */ typedef struct { int numerator;/* 分子 */ int denomina ...

  9. 如何用c语言编辑盗号,想程序高手求助--用C语言来编辑一个输入密码的程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*--------实现密码的隐式输入-----------------*/ inputpw(char *password,int len) /*len为 ...

最新文章

  1. c++局域网主动ftp_如何在局域网中实现 ARP 攻击
  2. 路由器简介与IOS介绍
  3. rails3使用ActionMail发送邮件
  4. 新唐c语言怎么计算指数运算,C语言位域精解
  5. 分布式下的session问题
  6. 前端性能优化之性能测试
  7. 算法高级(33)-拓扑排序-maven依赖关系的确定
  8. 设计模式学习笔记--Flyweight享元模式
  9. 基于Python开发用于钞票认证的神经网络
  10. 微信H5(WAP)支付,遇到的那些坑
  11. 虚幻引擎3控制台命令
  12. HBase的rowKey设计技巧
  13. 快狗打车正式登陆港交所,“更美好,更绿色”的同城货运平台来了!
  14. Linux正则表达式grep,egrep 及相应的正则表达式用法详解
  15. 一维离散余弦变换(DCT)及其反变换(IDCT)公式的一种推导
  16. python ocr文字识别竖排繁体_(以繁体竖排为例)OCR各种软件使用效果对照..docx...
  17. 分布式系统关注点——「负载均衡」到底该如何实施?
  18. 网络工程师加入德云社说相声,他还骑摩托车环球旅行!!
  19. 使用 @mention 功能构建 React 评论表单
  20. Android 经验: 本地 5555 端口会被 adb 误认为 emulator

热门文章

  1. 万豪旗下精选服务品牌MOXY中国大陆首家酒店亮相上海虹桥商务区
  2. 在Unity中实现读取word中的内容并打印到界面
  3. 地震信号滤波matlab,GABOR反褶积用于地震信号的时频分析
  4. Error 1267 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)
  5. 荣誉喜报!妙手ERP获得俄罗斯电商平台Ozon最佳解决方案合作伙伴!
  6. Go语言逐行读取文件的三种方法
  7. 黑莓物流解决方案BlackBerry Logistics solution
  8. 台式计算机显示器点不亮的原因,电脑显示器不亮有哪些原因
  9. 医院PACS系统:三维多平面重建操作使用
  10. php 正则匹配http,php url正则表达式