如何使用JavaScript中的比特币金额?

时间:2019-03-31 19:17:49

标签: javascript json bitcoin bitconverter

我想开发应用程序,在这里我必须处理代表比特币数量的数字。我的任何搜索都使我“使用RPC和钱包”,但这完全不是主题。

我要介绍的内容如下:

  • 以json格式存储金额:“存储格式?”
  • 进行简单的数学运算(加法,百分数乘法)而不会丢失聪子
  • 从“存储格式”到字符串显示给用户
  • 处理输入并将字符串转换为“存储格式”

Int32和float是不合适的类型。 20999999.99999999 + 0.00000001应该严格等于21000000

1 个答案:

答案 0 :(得分:2)

使用JavaScript Number实现无法实现。 要么存储Satoshi的总数,要么存储比特币的总数,例如

render() {
    const { classes, children } = this.props;
    const { mobileOpen} = this.state;

    const drawer = (
      <div>
        <Hidden smDown>
        <div className={classes.toolbar} />
        </Hidden>
        <MenuList>
          <MenuItem component={Link} to="/">
          Home

          </MenuItem>
          <MenuItem component={Link} to="/PatientdataPatient" >
          Users
          </MenuItem>

        </MenuList>


      </div>
    );

    return (

      <div className={classes.root}>
        <CssBaseline />
        <AppBar position="fixed" className={classes.appBar}>


         ......code


            <Drawer
              container={this.props.container}
              variant="temporary"
              open={mobileOpen}
              onClose={this.handleDrawerToggle}
              classes={{
                paper: classes.drawerPaper,
              }}
            >
              {drawer}
            </Drawer>
          </Hidden>
          <Hidden xsDown implementation="css">
            <Drawer
              classes={{
                paper: classes.drawerPaper,
              }}
              variant="permanent"
              open
            >
              {drawer}
            </Drawer>
          </Hidden>
        </nav>
        <main className={classes.content}>
          <div className={classes.toolbar} />
          {children}
        </main>
      </div>
    );
  }
}

另一种选择是使用https://github.com/MikeMcl/bignumber.js/之类的BigNumber库,这会降低性能,但允许对任何数字进行精确计算。