package plural

import (
	
	
	
)

func finvtw( interface{}) (int64, int64, float64, int, int64, int) {
	// @see http://unicode.org/reports/tr35/tr35-numbers.html#Operands
	//
	// Symbol	Value
	// n	    absolute value of the source number (integer and decimals).
	// i	    integer digits of n.
	// v	    number of visible fraction digits in n, with trailing zeros.
	// w	    number of visible fraction digits in n, without trailing zeros.
	// f	    visible fractional digits in n, with trailing zeros.
	// t	    visible fractional digits in n, without trailing zeros.
	var  string
	var  int

	var  int64
	var  int64
	var  float64
	var  int
	var  int64

	switch .(type) {
	case int:
		 = int64(.(int))
		return 0, , math.Abs(float64()), 0, 0, 0

	case int64:
		 = .(int64)
		return 0, , math.Abs(float64()), 0, 0, 0

	case float64:
		 := .(float64)
		 = strconv.FormatFloat(, 'f', -1, 64)
		 = strings.Index(, ".")
		if -1 ==  {
			return 0, int64(), math.Abs(), 0, 0, 0
		}
		 = math.Abs()

	case string:
		 = .(string)
		 = strings.Index(, ".")
		if -1 ==  {
			,  := strconv.ParseInt(, 10, 64)
			if nil !=  {
				return 0, 0, 0, 0, 0, 0
			}
			return 0, , math.Abs(float64()), 0, 0, 0
		}
		,  := strconv.ParseFloat(, 64)
		if nil !=  {
			return 0, 0, 0, 0, 0, 0
		}

		 = math.Abs()
	}

	 := [+1:]

	,  := strconv.ParseInt(, 10, 64)
	if nil !=  {
		return 0, 0, 0, 0, 0, 0
	}

	,  = strconv.ParseInt([:], 10, 64)
	if nil !=  {
		return 0, 0, 0, 0, 0, 0
	}

	 = len()

	var  string

	 := len()
:
	for  :=  - 1;  >= 0; -- {
		switch [] {
		case '0':
			--

		default:
			break 
		}
	}
	if  >= 1 {
		 = [:]
	}

	if "" ==  {
		return , , , , 0, 0
	} else if  !=  {
		,  = strconv.ParseInt(, 10, 64)
		if nil !=  {
			return 0, 0, 0, 0, 0, 0
		}
		return , , , , , len()
	}
	return , , , , , 
}