答案 0 :(得分:7)
您可以更改//css
.app p {
color: green;
}
//JS
import styles from './app.css';
<div className={styles.app}>
<p>{ this.state.count }</p>
<button onClick={() => this.increment()}>Increment</button>
</div>
执行BigDecimal
的转换器,这是NumberDecimal
的java表示形式,因为mongo 3.4:
Decimal128
实际上自Spring Data 2.0.7.RELEASE以上更改如下:
@Bean
public MongoCustomConversions mongoCustomConversions() {
return new MongoCustomConversions(Arrays.asList(
new Converter<BigDecimal, Decimal128>() {
@Override
public Decimal128 convert(@NonNull BigDecimal source) {
return new Decimal128(source);
}
},
new Converter<Decimal128, BigDecimal>() {
@Override
public BigDecimal convert(@NonNull Decimal128 source) {
return source.bigDecimalValue();
}
}
));
}
答案 1 :(得分:6)
Spring Data MongoDB在写入时将BigDecimal
值转换为String
,并在读取时将其转换回NSArray *arr = //response;
for (NSDictionary *dic in arr)
{
if([dic objectForKey:"statutory_month"])
//add
if([dic objectForKey:"statutory_date"])
//add
}
。请查看参考手册的data mapping and type conversion部分。
答案 2 :(得分:1)
如Spring Data MongoDB所记录-参考文档18.6. Custom Conversions - Overriding Default Mapping:
影响映射结果的最简单的方法是通过@Field
注释指定所需的本机MongoDB目标类型。这样可以在域模型中使用非MongoDB类型(如BigDecimal
),同时以本机org.bson.types.Decimal128
格式保存值。
public class Payment {
@Field(targetType = FieldType.DECIMAL128)
BigDecimal value;
}
所需目标类型明确定义为Decimal128
,它转换为NumberDecimal
。否则,BigDecimal
的值将变成String
:
{
"value" : NumberDecimal(2.099)
}
答案 3 :(得分:0)
我遇到一个极端的情况,其中我有很多小数,Decimal128的构造函数提出了以下异常:
Failed to convert from type [java.math.BigDecimal] to type [org.bson.types.Decimal128] for value '21.6000000000000000888178419700125232338905334472656250'; nested exception is java.lang.NumberFormatException: Conversion to Decimal128 would require inexact rounding of 21.6000000000000000888178419700125232338905334472656250
解决方案是将输入取整:
new Decimal128(source.round(MathContext.DECIMAL128))