如何在 C# 中将小数转换为 Google.Type.Money
How do I convert a decimal to a Google.Type.Money in C#
我的 C# 程序中有一个 decimal
值,我想将其转换为 Google.Type.Money
众所周知的原型类型。如果不手动计算单位和纳米,我该如何做到这一点?是否有执行此操作的扩展方法?
如果安装了 Google.Api.CommonProtos
NuGet 包,Google.Type.Money
类型有一个 DecimalValue
属性 会自动与 .NET decimal
类型。
从 decimal
创建一个 Google.Type.Money
:
var money = new Google.Type.Money { DecimalValue = 123.45m }
访问Google.Type.Money
的decimal
值:
var decimalValue = money.DecimalValue;
请注意,Google.Type.Money
是通过 int64
单位和 int32
来保存小数部分(“nanos”)实现的,因此有一些合法的 decimal
中的值不能准确地表示为 Google.Type.Money
。设置 DecimalValue
将在这些情况下抛出。
我的 C# 程序中有一个 decimal
值,我想将其转换为 Google.Type.Money
众所周知的原型类型。如果不手动计算单位和纳米,我该如何做到这一点?是否有执行此操作的扩展方法?
如果安装了 Google.Api.CommonProtos
NuGet 包,Google.Type.Money
类型有一个 DecimalValue
属性 会自动与 .NET decimal
类型。
从 decimal
创建一个 Google.Type.Money
:
var money = new Google.Type.Money { DecimalValue = 123.45m }
访问Google.Type.Money
的decimal
值:
var decimalValue = money.DecimalValue;
请注意,Google.Type.Money
是通过 int64
单位和 int32
来保存小数部分(“nanos”)实现的,因此有一些合法的 decimal
中的值不能准确地表示为 Google.Type.Money
。设置 DecimalValue
将在这些情况下抛出。