如何在JSON中显示小数位

时间:2015-12-07 13:48:41

标签: javascript json node.js pug ibm-cloud

我正在使用IBM Bluemix为学校项目提供Web服务。

我从API请求一个JSON,它返回如下数据:

{"bovespa":{"cotacao":"46012","variacao":"+1.44"},"dolar":{"cotacao":"3.7340","variacao":"+0.03"},"euro":{"cotacao":"4.0376","variacao":"-0.54"},"atualizacao":"07\/12\/15 - 11:23"}

我的代码在JADE模板中显示每个变量。

我想知道,在JADE模板中,我能否以某种方式控制JADE模板中显示#{VariacaoDolar}的小数位数。

这是我的.js文件:



// Hello.
//
// This is JSHint, a tool that helps to detect errors and potential
// problems in your JavaScript code.
//
// To start, simply enter some JavaScript anywhere on this page. Your
// report will appear on the right side.
//
// Additionally, you can toggle specific options in the Configure
// menu.

function main() {
  return 'Hello, World!';
}

main();/*eslint-env node*/

//------------------------------------------------------------------------------
// node.js starter application for Bluemix
//------------------------------------------------------------------------------

// HTTP request - duas alternativas
var http = require('http');
var request = require('request');

// cfenv provides access to your Cloud Foundry environment
// for more info, see: https://www.npmjs.com/package/cfenv
var cfenv = require('cfenv');

//chama o express, que abre o servidor
var express = require('express');

// create a new express server 
var app = express();

// serve the files out of ./public as our main files
app.use(express.static(__dirname + '/public'));

// get the app environment from Cloud Foundry
var appEnv = cfenv.getAppEnv();

// start server on the specified port and binding host
app.listen(appEnv.port, '0.0.0.0', function() {
    // print a message when the server starts listening
    console.log("server starting on " + appEnv.url);
});


app.get('/home1', function (req,res) {
    http.get('http://developers.agenciaideias.com.br/cotacoes/json', function (res2) {
        var body = '';
        res2.on('data', function (chunk) {
            body += chunk;
        });
        res2.on('end', function () {
            var json = JSON.parse(body);
            var cotacao = json["bovespa"]["cotacao"];
            var CotacaoDolar = json["dolar"]["cotacao"];
            var VariacaoDolar = json["dolar"]["variacao"];
            var CotacaoEuro = json["euro"]["cotacao"];
            var VariacaoEuro = json["euro"]["variacao"];
            var Atualizacao = json["atualizacao"];
			
			console.log('url', req.originalUrl);
			
			obj=req.query; 
			
			DolarUsuario=obj['dolar'];
			RealUsuario=Number(obj['dolar'])*CotacaoDolar;
			
			EuroUsuario=obj['euro'];
			RealUsuario2=Number(obj['euro'])*CotacaoEuro;
			
			if (VariacaoDolar<0) {
			recomend= "Recomenda-se, portanto, comprar dólares.";
			}
			
			else if (VariacaoDolar=0){
				recomend="";
			}
			
			else {
				recomend="Recomenda-se,portanto, vender dólares.";
				  }
				  
			if (VariacaoEuro<0) {
			recomend2= "Recomenda-se, portanto, comprar euros.";
			}
			
			else if (VariacaoEuro=0){
				recomend2="";
			}
			else {
				recomend2="Recomenda-se,portanto, vender euros.";
				  }	  
				  
			res.render('cotacao_response.jade', {
                 		 'CotacaoDolar':CotacaoDolar,
						'VariacaoDolar':VariacaoDolar,
						'Atualizacao':Atualizacao,
						'RealUsuario':RealUsuario,
						'DolarUsuario':DolarUsuario,
						'CotacaoEuro':CotacaoEuro,
						'VariacaoEuro':VariacaoEuro,
						'RealUsuario2':RealUsuario2,
						'recomend':recomend,
						'recomend2':recomend2
						
            });
			var csv = require("fast-csv");

			csv
			 .fromPath("Cambio.csv")
			 .on("record", function(data){
				 console.log(data);
			 })
			 .on("end", function(){
				 console.log("done");
			 });
			
        });
    });
});
&#13;
&#13;
&#13;

这是我的.jade文件:

&#13;
&#13;
doctype html
html(lang="en")
  head
    title Cotação 
    link(rel='stylesheet',href='stylesheets/style.css')
  body
  h1 &nbsp&nbsp&nbspPara o Dólar:
  h2 &nbsp&nbsp&nbspA taxa de câmbio é de #{CotacaoDolar} 
  h2 &nbsp&nbsp&nbspA variação do câmbio foi de #{VariacaoDolar}% desde sua última cotação. #{recomend}
  h2 &nbsp&nbsp&nbspVocê tem #{DolarUsuario} dólares, que valem #{RealUsuario} reais.
  br
  h1 &nbsp&nbsp&nbspPara o Euro:
  h2 &nbsp&nbsp&nbspA taxa de câmbio é de #{CotacaoEuro} R$.
  h2 &nbsp&nbsp&nbspA variação do câmbio foi de #{VariacaoEuro}% desde sua última cotação. #{recomend2}
  h2 &nbsp&nbsp&nbspVocê tem #{EuroUsuario} euros, que valem #{RealUsuario2} reais.
  br
  h3 &nbsp&nbsp&nbspEsses valores correspondem ao preço de compra em #{Atualizacao}.
  h3 &nbsp&nbsp&nbspSe você quer aprender mais sobre câmbio, visite a #[a(href='https://pt.khanacademy.org/economics-finance-domain/core-finance/money-and-banking/currency-tutorial/v/currency-exchange-introduction') Khan Academy].
  h3 &nbsp&nbsp&nbspPara notícias do mercado de câmbio, acesse #[a(href='http://www.valor.com.br/search/apachesolr_search/c%C3%A2mbio?solrsort=created%20desc&filters=-type%3Avalor_international_conteudo%20-type%3Awall_street_journal%20-type%3Avalor_ri*%20-channel%3Ari') Valor Econômico].
  #container.col
  p
  p.
        
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您需要使用Float代替。使用以下函数将您的数字转换为浮点数。浮点数在小数点后将具有正确的位数,并且不会像字符串一样包裹。

var parsedNumber = parseFloat(youNumber);